n,l = map(int,input().split())
b = sorted([*map(int,input().split())],reverse = True)
i = 0
while(i<n):
if(l%b[i]==0):print(l//b[i]);break
i += 1
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define fi first
#define se second
#define rep(i,a,n) for(int i=a;i<n;i++)
#define per(i,a,n) for(int i=n-1;i>=a;i--)
#define pb push_back
#define yes {cout<<"Yes"<<endl;return;}
#define no {cout<<"No"<<endl;return;}
#define cntbit __builtin_popcountll
#define pii pair<int,int>
#define vii vector<pair<int,int>>
using namespace std;
const int mod = 1000000007;
const int N = 1<<10;
void add(int &a,int b){
a+=b;
if(a>=mod) a-=mod;
}
int gcd(int a,int b){
return b?gcd(b,a%b):a;
}
int qmi(int a,int b){
int res=1;
for(;b;b>>=1){
if(b&1) res=res*a%mod;
a=a*a%mod;
}return res;
}
void solve(){
int n,k;cin>>n>>k;
int mx=-1;rep(i,1,n+1){
int x;cin>>x;
if(k%x==0) mx=max(mx,x);
}cout<<k/mx<<endl;
}
signed main(){
ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
int t=1;//cin>>t;
while(t--){
solve();
}
}
1702D - Not a Cheap String | 1714F - Build a Tree and That Is It |
1703F - Yet Another Problem About Pairs Satisfying an Inequality | 610A - Pasha and Stick |
1200A - Hotelier | 1091A - New Year and the Christmas Ornament |
1352B - Same Parity Summands | 1102A - Integer Sequence Dividing |
630B - Moore's Law | 1004A - Sonya and Hotels |
1680B - Robots | 1690A - Print a Pedestal (Codeforces logo) |
1295A - Display The Number | 1077A - Frog Jumping |
1714G - Path Prefixes | 1369C - RationalLee |
289B - Polo the Penguin and Matrix | 1716A - 2-3 Moves |
1670B - Dorms War | 1716B - Permutation Chain |
987A - Infinity Gauntlet | 1676G - White-Black Balanced Subtrees |
1716D - Chip Move | 1352F - Binary String Reconstruction |
1487B - Cat Cycle | 1679C - Rooks Defenders |
56A - Bar | 1694B - Paranoid String |
35A - Shell Game | 1684A - Digit Minimization |